#!/usr/bin/env node

// 用于处理命令参数的插件
const progarn = require('commander')

// 用于处理命令行交互的工具
const inquirer = require('inquirer')

const fs = require('fs')

const path = require('path')

const axios = require('axios')





// commander 自定义命令

// 获取当前程序执行的位置
progarn.command('getUrl')
.description('获取当前程序执行的位置') // 当前命令的描述
.action(() => { // 当命令输入完之后 执行
    console.log(process.cwd())
})

progarn.command('serchStar') // 自定义指令
.description('查询星座') // 描述
.action(() => { // 触发指令之后的操作
    // 输入你的星座
    inquirer.prompt([
        {
            type: 'input', // 交互类型
            message: '请输入你的星座', // 交互提示
            name: 'st_name' // 生成对象的key名称
        }
    ]).then(res => {
        // en code URI Component: 将二进制字符转化为中文字符
        axios({
            url: `http://web.juhe.cn:8080/constellation/getAll?key=1e86cbe4ac7c8e1d23dcc5a133221f7b&type=today&consName=${encodeURIComponent(res.st_name)}`
        }).then(reslove => {
            console.log(reslove.data.summary)
        })
    })
})






// 操作文件
const V = () => {
    // V buffer  V.toString()  将buffer 转化为字符串
    let version = fs.readFileSync(path.join(__dirname, 'package.json')).toString()

    // 将读取后的文件字符串 转换为 对象
    version = JSON.parse(version)

    return version.version
}


// 输出版本号
progarn.version(V())
.parse(process.argv)
// 编译命令行中输入的内容


/**
 * commander
 * 1.版本号：commander.version(版本号)
 * 2.编译命令行中输入的内容： .parse(process.argv)  必须要放在最后执行
 * 
 */

